package com.thinkgem.jeesite.modules.data.rep.entity;

import com.thinkgem.jeesite.common.persistence.BaseEntity;
import com.thinkgem.jeesite.modules.sys.entity.Dict;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 报表配置输入条件表
 * @author Havel 2018/12/17
 * @since 1.0
 */
public class TfEcReportConfigIn extends BaseEntity<TfEcReportConfigIn> {

    public static final String ITEM_TYPE_MENU= "2";//枚举类型 的itemType
    public static final String ITEM_TYPE_DICT= "3";//字典表 的itemType
    public static final String ITEM_TYPE_SQL= "4";//sql数据源 的itemType

    public static final String THIRD_TYPE_MUTI="1";//下拉列表多选


    /**
     * 条件编码
     */
    private Long inConditionId;

    /**
     * 商品ID
     */
    private Long reportId;

    /**
     * 参数编码
     */
    private String itemCode;

    /**
     * 参数名称
     */
    private String itemName;

    /**
     * 参数类型0 文本框 1下拉列表 2 日期框
     */
    private String itemType;

    /**
     * 参数值限制类型
     * 针对ITEM_TYPE=0 文本框 0 普通文本框 1 数字
     * 针对ITEM_TYPE=1 下拉列表 限制数据源 0 枚举值（0,xxxxx;1,yyyyy 形式） 1静态参数（td_s_static data_id,data_name） 2 sql数据源(select aaa as data_id,bbbb as data_name from c 形式)
     * 针对ITEM_TYPE=2  日期框 限制日期格式 yyyymmdd hh24:mi:ss  yyyymmdd yyyymm
     */
    private String checkType;

    /**
     * 针对ITEM_TYPE=1 下拉列表 下拉选项内容是否可以多选：默认为0-不可以多选，单选框 | 1-可以多选
     */
    private String thirdType;

    /**
     * 参数初始值
     */
    private String initialValue;

    /**
     * 备注
     */
    private String remark;

    /**
     * 删除标志 0 在用 1 删除
     */
    private String delFlag;

    /**
     * 录入员工
     */
    private String inStaffId;

    /**
     * 录入时间
     */
    private Date inDate;

    /**
     * 更新员工
     */
    private String updateStaffId;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 参数作用类型：1-列表查找参数；2-存储过程参数
     */
    private String paramType;

    /**
     * 是否展示
     */
    private String isShow;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 备用字段1
     */
    private String rsrvStr4;

    /**
     * 备用字段1
     */
    private String rsrvStr5;

    private List<Dict> selectList;//下拉框选项
    private String paramValue;



    public TfEcReportConfigIn(Long inConditionId) {
        this.inConditionId = inConditionId;
    }

    public TfEcReportConfigIn() {
    }

    /**
     * 插入之前执行方法，子类实现
     */
    public void preInsert() {

    }

    /**
     * 更新之前执行方法，子类实现
     */
    public void preUpdate() {

    }


    public Long getInConditionId() {
        return inConditionId;
    }

    public void setInConditionId(Long inConditionId) {
        this.inConditionId = inConditionId;
    }

    public Long getReportId() {
        return reportId;
    }

    public void setReportId(Long reportId) {
        this.reportId = reportId;
    }

    @NotNull(message="参数编码不能为空")
    public String getItemCode() {
        return itemCode;
    }

    public void setItemCode(String itemCode) {
        this.itemCode = itemCode == null ? null : itemCode.trim();
    }
    @NotNull(message="参数名称不能为空")
    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName == null ? null : itemName.trim();
    }
    @NotNull(message="参数类型不能为空")
    public String getItemType() {
        return itemType;
    }

    public void setItemType(String itemType) {
        this.itemType = itemType == null ? null : itemType.trim();
    }

    public String getCheckType() {
        return checkType;
    }

    public void setCheckType(String checkType) {
        this.checkType = checkType == null ? null : checkType.trim();
    }

    public String getInitialValue() {
        return initialValue;
    }

    public void setInitialValue(String initialValue) {
        this.initialValue = initialValue == null ? null : initialValue.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag == null ? null : delFlag.trim();
    }

    public String getInStaffId() {
        return inStaffId;
    }

    public void setInStaffId(String inStaffId) {
        this.inStaffId = inStaffId == null ? null : inStaffId.trim();
    }

    public Date getInDate() {
        return inDate;
    }

    public void setInDate(Date inDate) {
        this.inDate = inDate;
    }

    public String getUpdateStaffId() {
        return updateStaffId;
    }

    public void setUpdateStaffId(String updateStaffId) {
        this.updateStaffId = updateStaffId == null ? null : updateStaffId.trim();
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getParamType() {
        return paramType;
    }

    public void setParamType(String paramType) {
        this.paramType = paramType;
    }

    public String getIsShow() {
        return isShow;
    }

    public void setIsShow(String isShow) {
        this.isShow = isShow;
    }


    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public String getRsrvStr4() {
        return rsrvStr4;
    }

    public void setRsrvStr4(String rsrvStr4) {
        this.rsrvStr4 = rsrvStr4 == null ? null : rsrvStr4.trim();
    }

    public String getRsrvStr5() {
        return rsrvStr5;
    }

    public void setRsrvStr5(String rsrvStr5) {
        this.rsrvStr5 = rsrvStr5 == null ? null : rsrvStr5.trim();
    }

    public List<Dict> getSelectList() {
        return selectList;
    }

    public void setSelectList(List<Dict> selectList) {
        this.selectList = selectList;
    }

    public String getParamValue() {
        return paramValue;
    }

    public void setParamValue(String paramValue) {
        this.paramValue = paramValue;
    }

    public String getThirdType() {
        return thirdType;
    }

    public void setThirdType(String thirdType) {
        this.thirdType = thirdType;
    }
}